/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package androidutal;

import data.dataBase.Ayudante;
import data.dataBase.Beca;
import data.dataBase.CalendarioEvento;
import data.dataBase.General;
import data.dataBase.GeneralEx;
import data.dataBase.Horario;
import data.dataBase.MemoriaPractica;
import data.dataBase.OfertaLaboral;
import data.dataBase.Planificacion;
import data.dataBase.PostGrado;
import data.dataBase.Suspension;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;


/**
 *
 * @author vladimir
 */
public class JPanelResumen extends JPanel implements ActionListener{
    
    private int fila;
    private int columna;
    
    private JTable table1 ;
    private ModeloTabla myModel;
    
    private JPanel sur;
    private JPanel norte ;
    private JPanel este ;
    private JPanel oeste;
    private JLabel titulo;
    
    JTextField descripcion2;
    JVentana ventana ;
    
    final String[] columnNames1 = {"Titulo","Fecha","Borrador"};
    final Object[][] info = {{ "Cambio de Sala Ingles 2","Vladimir"}};
    
    private JTextField titulo2;
    
    
    JButton botonNuevo;
    JButton botonEditar;
    JButton botonEliminar;
    JButton botonAtras;
    JButton botonVistaPrevia;
    
    int ancho=400;
    
    
    
    public JPanelResumen(JVentana ventana, String tituloo)   {
        // creo la tabla que contendra los datos y le agrego una tupla de ejemplo
        this.ventana = ventana;
        this.setVisible(false);
        this.myModel = new ModeloTabla(this.ventana,columnNames1);
        
	this.table1 = new JTable(myModel);
        table1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        
        table1.setForeground(Color.black);
	table1.setBackground(Color.white);
	table1.setPreferredScrollableViewportSize(new Dimension(300,300));
	JScrollPane scrollPane1 = new JScrollPane(table1);
//        scrollPane1.setBounds(0,0,350, 300);
        this.setSize(this.ventana.getSize());
        ////////////////////////////////////////////////////////////////////////
        // creo los paneles y lo que tendra cada panel
        sur = new JPanel();
        sur.setLayout(new FlowLayout(FlowLayout.RIGHT));
        norte = new JPanel();
        este = new JPanel();
        oeste = new JPanel();
        titulo= new JLabel(tituloo);
        titulo.setForeground(Color.white);
        este.setBackground(Color.black);
        sur.setBackground(Color.black);
        norte.setBackground(Color.black);
        oeste.setBackground(Color.black);

        norte.add(titulo);
        botonNuevo = new JButton("Nuevo");
        botonNuevo.setBackground(Color.white);
        botonEditar = new JButton("Editar");
        botonEditar.setBackground(Color.white);
        botonEliminar = new JButton("Eliminar");
        botonEliminar.setBackground(Color.white);
        botonAtras = new JButton("Atras");
        botonAtras.setBackground(Color.white);
        botonVistaPrevia = new JButton("Vista Previa");
        botonVistaPrevia.setBackground(Color.white);
        sur.add(botonNuevo);
        sur.add(botonEditar);
        sur.add(botonEliminar);
        sur.add(botonVistaPrevia);
        sur.add(botonAtras);        
        /////////////////////////////////////////////////////
        //Agrego los paneles con en las posiciones del layout
        this.setLayout(new BorderLayout());
        this.add(norte , BorderLayout.NORTH);
        this.add(scrollPane1,BorderLayout.CENTER);
        this.add(este , BorderLayout.WEST);
        this.add(oeste , BorderLayout.EAST);
        this.add(sur , BorderLayout.SOUTH);
        //////////////////////////////////////////////////////
        //acciones del boton(Agrego los accion Listener)
        botonNuevo.addActionListener(this);
        botonEditar.addActionListener(this);
        botonEliminar.addActionListener(this);
        botonAtras.addActionListener(this);
        botonVistaPrevia.addActionListener(this);
        ///////////////////////////////////////////////////////
        table1.getTableHeader().setReorderingAllowed(false);
        botonEditar.setEnabled(false);
        botonEliminar.setEnabled(false);
        this.table1.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent mouseEvent){
            // Acciones del click sobre la tabla
                JTable tabla= (JTable)mouseEvent.getSource();
                ModeloTabla tm=(ModeloTabla)tabla.getModel();
                if (tabla.getSelectedRow()!=-1){
                    if(tm.esBorrador(tabla.getSelectedRow())){
                       // System.out.println(tabla.getValueAt(tabla.getSelectedRow(), 2));
                        botonEditar.setEnabled(true);
                        botonEliminar.setEnabled(true);
                    }
                    else{
                        botonEditar.setEnabled(false);
                        botonEliminar.setEnabled(false);
                    }
                }
            }
          });
        
    }
    
    public JPanel getEste() {
        return este;
    }

    public void setEste(JPanel este) {
        this.este = este;
    }

    public ModeloTabla getMyModel() {
        return myModel;
    }

    public void setMyModel(ModeloTabla myModel) {
        this.myModel = myModel;
    }

    public JPanel getNorte() {
        return norte;
    }

    public void setNorte(JPanel norte) {
        this.norte = norte;
    }

    public JPanel getOeste() {
        return oeste;
    }

    public void setOeste(JPanel oeste) {
        this.oeste = oeste;
    }

    public JPanel getSur() {
        return sur;
    }

    public void setSur(JPanel sur) {
        this.sur = sur;
    }

    public JTable getTable1() {
        return table1;
    }

    public void setTable1(JTable table1) {
        this.table1 = table1;
    }

    public JLabel getTitulo() {
        return titulo;
    }

    public void setTitulo(JLabel titulo) {
        this.titulo = titulo;
    }

    public int getColumna() {
        return columna;
    }

    public void setColumna(int columna) {
        this.columna = columna;
    }

    public int getFila() {
        return fila;
    }

    public void setFila(int fila) {
        this.fila = fila;
    }
    
    public void addFila(){
        DefaultTableModel modelo=(DefaultTableModel) this.table1.getModel();
        int col=modelo.getColumnCount();
        modelo.addRow(new Object[col]);
        TableColumn columna1 = table1.getColumnModel().getColumn(0); 
        TableColumn columna2 = table1.getColumnModel().getColumn(1); 
//        TableColumn columna3 = table1.getColumnModel().getColumn(2); 
        MiRender mr=new MiRender();
        columna1.setCellRenderer(mr);
        columna2.setCellRenderer(mr);
//        columna3.setCellRenderer(mr);
        this.table1.setModel(modelo);
    }
    public void insertarInfo(String data1, String data2,String data3){
        this.addFila();
        table1.setValueAt(data1,table1.getRowCount()-1,0);
        table1.setValueAt(data2,table1.getRowCount()-1,1);
//        table1.setValueAt(data3,table1.getRowCount()-1,2);
        
        
    }
    public void limpiarTabla(){
        DefaultTableModel modelo=(DefaultTableModel) this.table1.getModel();
        int fil=this.table1.getRowCount();
        for(int i=fil; i>0;i--){
            modelo.removeRow(i-1);            
        }
        this.table1.setModel(modelo);
        
    }
    public void eliminarFila(){
        ModeloTabla modelo=(ModeloTabla) this.table1.getModel();
        int fil=this.table1.getSelectedRow();
        if(fil!=-1){
            if(modelo.esBorrador(fil)){
                if (this.ventana.getResumen().getTitulo().getText().equals("Cambio de horario ")) {
                    this.eliminarCambioHorario((String)modelo.getValueAt(fil,1));
                }
                 else if(this.ventana.getResumen().getTitulo().getText().equals("Suspension pruebas y/o clases")){                
                     this.eliminarSuspension((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Solicitud de ayudantes")){
                    this.eliminarAyudante((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Planificacion de cursos y horarios")){
                    this.eliminarPlanificacion((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Ofertas laborales (memorias/practicas)")){
                    this.eliminarOfertaPractica((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Aviso general")){
                    this.eliminarGenerales((String)modelo.getValueAt(fil,1));
                }

                //menuExalumno
                else if(this.ventana.getResumen().getTitulo().getText().equals("Oferta laboral")){
                    this.eliminarOfertaLaboral((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Oferta Post-Grado")){
                    this.eliminarPostGrado((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Becas de estudio")){
                    this.eliminarBeca((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Avisos generales")){
                    this.eliminarGeneralExs((String)modelo.getValueAt(fil,1));           
                }                
                modelo.removeRow(fil);  
            }
        }
        
    }
    public void editarBorrador(){
        ModeloTabla modelo=(ModeloTabla) this.table1.getModel();
        int fil=this.table1.getSelectedRow();
        if(fil!=-1){
            if(modelo.esBorrador(fil)){
                if (this.ventana.getResumen().getTitulo().getText().equals("Cambio de horario ")) {
                     this.editarCambioHorario((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Suspension pruebas y/o clases")){                   
                     this.editarSuspension((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Solicitud de ayudantes")){
                    this.editarAyudante((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Planificacion de cursos y horarios")){
                    this.editarPlanificacion((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Ofertas laborales (memorias/practicas)")){
                    this.editarOfertaPractica((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Aviso general")){
                    this.editarGenerales((String)modelo.getValueAt(fil,1));
                }

                //menuExalumno
                else if(this.ventana.getResumen().getTitulo().getText().equals("Oferta laboral")){
                    this.editarOfertaLaboral((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Oferta Post-Grado")){

                    this.editarPostGrado((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Becas de estudio")){
                    this.editarBeca((String)modelo.getValueAt(fil,1));
                }
                else if(this.ventana.getResumen().getTitulo().getText().equals("Avisos generales")){
                    this.editarGeneralExs((String)modelo.getValueAt(fil,1));
                }
                this.eliminarFila();
            }
        }
    }   
    public void editarBeca(String date ){
            Beca be=ventana.getBaseDeDatos().getBecas().get(this.table1.getSelectedRow());
            JPanelBecaEstudio jbe=new JPanelBecaEstudio(ventana);
            jbe.getjNombre().setText(be.getNombre());
            jbe.getjPatrocinador().setText(be.getPatrocinador());
            jbe.getjInstituto().setText(be.getInstituto());
            jbe.getjDuracion().setText(be.getDuracion());
            jbe.setjFechaIncio(be.getFechaDesde());
            jbe.setjFechaFin(be.getFechaHasta());
            jbe.setFile(be.getFile());
            jbe.setjResultados(be.getFechaResultado());
            jbe.getJmonto().setText(be.getMonto());
            jbe.getjObjetivo().setText(be.getObjetivo());
            jbe.getjRequisito().setText(be.getRequisito());
            jbe.getjObservacion().setText(be.getObservacion());
            if(be.getFile()!= null){
                jbe.getjAdjunto().setText(be.getFile().getPath());
            }
            jbe.setIsBorrador(true);
            jbe.setVisible(true);
            ventana.add(jbe,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
//            ventana.getBaseDeDatos().getBecas().remove(this.table1.getSelectedRow());
            ventana.save();
        
    }    
    public void eliminarBeca(String date){
        if (ventana.getBaseDeDatos().getBecas().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getBecas().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    } 
    public void editarAyudante(String date ){
            Ayudante ayudante=ventana.getBaseDeDatos().getAyudantes().get(this.table1.getSelectedRow());
            JPanelSolicitudAyudante jbsa=new JPanelSolicitudAyudante(ventana);
            jbsa.getjCursos().setSelectedItem(ayudante.getCurso());
            jbsa.getjHoras().setText(String.valueOf(ayudante.getHoras()));
            jbsa.getjObservaciones().setText(ayudante.getObservaciones());
            jbsa.getjProfesores().setSelectedItem(ayudante.getProfesor());
            jbsa.getjRequisitos().setText(ayudante.getRequisito());
            jbsa.setIsBorrador(true);
            jbsa.setVisible(true);
            ventana.add(jbsa,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
 //           ventana.getBaseDeDatos().getAyudantes().remove(this.table1.getSelectedRow());
            ventana.save();
    }
    public void eliminarAyudante(String date){
        if (ventana.getBaseDeDatos().getAyudantes().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getAyudantes().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    }
    public void editarGenerales(String date ){
            General general=ventana.getBaseDeDatos().getGenerales().get(this.table1.getSelectedRow());
            JPanelFormularioGeneral jpfg=new JPanelFormularioGeneral(ventana);
            jpfg.getjTitulo().setText(general.getTitulo());
            jpfg.getjMensaje().setText(general.getMensaje());
            jpfg.setFile(general.getFile());
            jpfg.setIsBorrador(true);
            if(general.getFile()!= null){
                jpfg.getjAdjunto().setText(general.getFile().getPath());
            }
            jpfg.setVisible(true);
            ventana.add(jpfg,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
//            ventana.getBaseDeDatos().getGenerales().remove(this.table1.getSelectedRow());
            ventana.save();
    }
    public void eliminarGenerales(String date){    
        if (ventana.getBaseDeDatos().getGenerales().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getGenerales().remove(this.table1.getSelectedRow());
        }        
        ventana.save();
    }
    public void editarGeneralExs(String date ){
            GeneralEx general=ventana.getBaseDeDatos().getGeneralExs().get(this.table1.getSelectedRow());
            JPanelFormularioGeneralExs jpfge=new JPanelFormularioGeneralExs(ventana);
            jpfge.getjTitulo().setText(general.getTitulo());
            jpfge.getjMensaje().setText(general.getMensaje());
            jpfge.setFile(general.getFile());
            jpfge.setIsBorrador(true);
            if(general.getFile()!= null){
                jpfge.getJAdjunto().setText(general.getFile().getPath());
            }
            jpfge.setVisible(true);
            ventana.add(jpfge,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
//            ventana.getBaseDeDatos().getGeneralExs().remove(this.table1.getSelectedRow());
            ventana.save();
    }
    public void eliminarGeneralExs(String date){
        if (ventana.getBaseDeDatos().getGeneralExs().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getGeneralExs().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    }
    public void editarSuspension(String date ){
            Suspension suspension=ventana.getBaseDeDatos().getSuspensiones().get(this.table1.getSelectedRow());
            JPanelSuspension jps=new JPanelSuspension(ventana);
            jps.getjCursos().setSelectedItem(suspension.getCurso());
            jps.setjFecha(suspension.getFecha());
            jps.getjMensaje().setText(suspension.getMensaje());
            jps.getjProfesores().setSelectedItem(suspension.getProfesor());
            jps.getjSala().setSelectedItem(suspension.getSala());
            jps.setHoras(suspension.getBloques());
            jps.setIsBorrador(true);
            jps.setVisible(true);
            ventana.add(jps,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
//            ventana.getBaseDeDatos().getSuspensiones().remove(this.table1.getSelectedRow());
            ventana.save();
    }
    public void eliminarSuspension(String date){
        System.out.println("Entro al eliminar fila:"+ this.table1.getSelectedRow());
         if (ventana.getBaseDeDatos().getSuspensiones().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){  
             System.out.println("Elimino la fila:"+ this.table1.getSelectedRow());
            ventana.getBaseDeDatos().getSuspensiones().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    }
    public void editarOfertaLaboral(String date ){
            OfertaLaboral of=ventana.getBaseDeDatos().getOfertasLaborales().get(this.table1.getSelectedRow());
            JPanelOfertaLaboral jpol=new JPanelOfertaLaboral(ventana);
            jpol.setjFechaInicio(of.getFechaInicio());
            jpol.setjFechaFin(of.getFechaTermino());
            jpol.getjCargo().setText(of.getCargo());
            jpol.getjDestino().setText(of.getDestinoCargo());
            jpol.getjEmpresa().setText(of.getEmpresa());
            jpol.getjObservaciones().setText(of.getObservacion());
            jpol.getjRequisitos().setText(of.getRequisito());
            jpol.getjSalario().setText(of.getSalario());
            jpol.setFile(of.getFile());
            jpol.setIsBorrador(true);
            if(of.getFile()!= null){
                jpol.getjAdjunto().setText(of.getFile().getPath());
            }
            jpol.setVisible(true);
            ventana.add(jpol,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
 //           ventana.getBaseDeDatos().getOfertasLaborales().remove(this.table1.getSelectedRow());
            ventana.save();
    }
    public void eliminarOfertaLaboral(String date){
        if (ventana.getBaseDeDatos().getOfertasLaborales().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getOfertasLaborales().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    }
    public void editarOfertaPractica(String date ){
            MemoriaPractica mp=ventana.getBaseDeDatos().getMemoriasPracticas().get(this.table1.getSelectedRow());
            JPanelOfertaPractica jpop=new JPanelOfertaPractica(ventana);
            jpop.setjFechaInicio(mp.getFechaDesde());
            jpop.setjFechaFin(mp.getFechaHasta());
            jpop.getjContacto().setText(mp.getContacto());
            jpop.getjDuracion().setText(mp.getDuracion());
            jpop.getjHoras().setText(String.valueOf(mp.getHorasSemanales()));
            jpop.getjLugar().setText(mp.getLugarDeTrabajo());
            jpop.getjRequisitos().setText(mp.getRequisitos());
            jpop.getjSueldo().setText(mp.getSueldo());
            jpop.getjTitulo().setText(mp.getTitulo());
            jpop.getjProfesores1().setSelectedItem(mp.getProfesor());
            jpop.getjObservaciones().setText(mp.getObservaciones());
            jpop.setFile(mp.getFile());
            jpop.setIsBorrador(true);
            if(mp.getFile()!= null){
                jpop.getjAdjunto().setText(mp.getFile().getPath());
            }
            jpop.setVisible(true);
            ventana.add(jpop,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
 //           ventana.getBaseDeDatos().getMemoriasPracticas().remove(this.table1.getSelectedRow());
            ventana.save();
    }
    public void eliminarOfertaPractica(String date){
         if (ventana.getBaseDeDatos().getMemoriasPracticas().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getMemoriasPracticas().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    }
    public void editarCambioHorario(String date ){
            Horario h=ventana.getBaseDeDatos().getHorarios().get(this.table1.getSelectedRow());
            jPanelCambioHorario1 jpch=new jPanelCambioHorario1(ventana);
            jpch.getjCursos().setSelectedItem(h.getCurso());
            jpch.getjObservaciones().setText(h.getObservaciones());
            jpch.getjPlainificacionFinal().setText(h.getpFinal());
            jpch.getjPlanificacionOriginal().setText(h.getpOriginal());
            jpch.getjProfesores().setSelectedItem(h.getProfesor());
            jpch.setIsBorrador(true);
            jpch.setVisible(true);
            ventana.add(jpch,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
 //           ventana.getBaseDeDatos().getHorarios().remove(this.table1.getSelectedRow());
            ventana.save();
    }
    public void eliminarCambioHorario(String date){
        if (ventana.getBaseDeDatos().getHorarios().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getHorarios().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    }
    public void editarPlanificacion(String date ){
            Planificacion p=ventana.getBaseDeDatos().getPlanificaciones().get(this.table1.getSelectedRow());
            JPanelPlanificacion jpp=new JPanelPlanificacion(ventana);
            jpp.getjObs().setText(p.getObservaciones());
            jpp.setFile(p.getFile()) ;
            jpp.setIsBorrador(true);
            if(p.getFile()!= null){
                jpp.getjAdjunto().setText(p.getFile().getPath());
            }
            jpp.setVisible(true);
            ventana.add(jpp,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese
//            ventana.getBaseDeDatos().getPlanificaciones().remove(this.table1.getSelectedRow());
            ventana.save();
    }
    public void eliminarPlanificacion(String date){
         if (ventana.getBaseDeDatos().getPlanificaciones().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getPlanificaciones().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    }
    public void editarPostGrado(String date ){                    
            PostGrado p=ventana.getBaseDeDatos().getPostGrados().get(this.table1.getSelectedRow());                        
            JPanelPostGrado jppg=new JPanelPostGrado(ventana);
            jppg.setJfecha(p.getFecha());
            jppg.getjInstituto().setText(p.getInstituto());
            jppg.getjNombre().setText(p.getNombre());
            jppg.getjObs().setText(p.getObservacion());
            jppg.getjRequisitos().setText(p.getRequisito());
            jppg.setFile(p.getFile());
            jppg.setIsBorrador(true);
            if(p.getFile()!= null){
                jppg.getjAdjunto().setText(p.getFile().getPath());
            }                        
            jppg.setVisible(true);
            ventana.add(jppg,BorderLayout.CENTER);
            ventana.getResumen().setVisible(false);
            //lo remuevo para no tenerlo dos vese            
            ventana.save();
    }
    public void eliminarPostGrado(String date){
        if (ventana.getBaseDeDatos().getPostGrados().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getPostGrados().remove(this.table1.getSelectedRow());
            
        }
        ventana.save();
    }
    public void eliminarEvento(String date){
        if (ventana.getBaseDeDatos().getCalendarioEventos().get(this.table1.getSelectedRow()).getDate().toString().equals(date)){
            ventana.getBaseDeDatos().getCalendarioEventos().remove(this.table1.getSelectedRow());
        }
        ventana.save();
    }
    
    @Override
     public void actionPerformed(ActionEvent e) {
       if(e.getSource().equals(botonNuevo)){   
            this.setVisible(false);
            //menu alumno
            if (this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Horario<br/> Curso </html>")){
                jPanelCambioHorario1 jp= new jPanelCambioHorario1(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
            }
             else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Suspencion<br/> Prueba o clases </html>")){
                JPanelSuspension jp= new JPanelSuspension(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
           
            }
            else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Solicitud<br/> Ayudantia</html>")){
                JPanelSolicitudAyudante jp= new JPanelSolicitudAyudante(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
           
            }
            else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Planificacion<br/> Curso o horarios </html>")){
                JPanelPlanificacion jp= new JPanelPlanificacion(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
           
            }
            else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Oferta<br/> Laboral </html>")){
                JPanelOfertaPractica jp= new JPanelOfertaPractica(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
            }
            else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Avisos<br/> Generales </html>")){
                JPanelFormularioGeneral jp= new JPanelFormularioGeneral(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
            }
            //menuExalumno
            else if(this.ventana.getMenuExAlumno().getBotonSeleccionado().equals("<html> Oferta<br/>Laboral</html>")){
                JPanelOfertaLaboral jp= new JPanelOfertaLaboral(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
            }
            else if(this.ventana.getMenuExAlumno().getBotonSeleccionado().equals("<html> Oferta<br/>Posgrado</html>")){
                JPanelPostGrado jp= new JPanelPostGrado(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
            }
            else if(this.ventana.getMenuExAlumno().getBotonSeleccionado().equals("<html> Oferta<br/>Becas</html>")){
                JPanelBecaEstudio jp= new JPanelBecaEstudio(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
            }
            else if(this.ventana.getMenuExAlumno().getBotonSeleccionado().equals("<html> Avisos<br/>generales</html>")){
                JPanelFormularioGeneralExs jp= new JPanelFormularioGeneralExs(this.ventana);
                jp.setVisible(true);
                this.ventana.add(jp,BorderLayout.CENTER);
            }
            //calendario
       }
       else if(e.getSource().equals(botonVistaPrevia)){
           if(this.table1.getSelectedRow()!=-1){
               if (this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Horario<br/> Curso </html>")){
                    Horario h=ventana.getBaseDeDatos().getHorarios().get(this.table1.getSelectedRow());
                    jPanelCambioHorario1 jpch=new jPanelCambioHorario1(ventana);
                    jpch.getjCursos().setSelectedItem(h.getCurso());
                    jpch.getjObservaciones().setText(h.getObservaciones());
                    jpch.getjPlainificacionFinal().setText(h.getpFinal());
                    jpch.getjPlanificacionOriginal().setText(h.getpOriginal());
                    jpch.getjProfesores().setSelectedItem(h.getProfesor());
                    jpch.bloquear();
                    jpch.setVisible(true);
                    ventana.add(jpch,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Suspencion<br/> Prueba o clases </html>")){
                    Suspension suspension=ventana.getBaseDeDatos().getSuspensiones().get(this.table1.getSelectedRow());
                    JPanelSuspension jps=new JPanelSuspension(ventana);
                    jps.getjCursos().setSelectedItem(suspension.getCurso());
                    jps.setjFecha(suspension.getFecha());
                    jps.getjMensaje().setText(suspension.getMensaje());
                    jps.getjProfesores().setSelectedItem(suspension.getProfesor());
                    jps.getjSala().setSelectedItem(suspension.getSala());
                    jps.setHoras(suspension.getBloques());
                    jps.bloquear();
                    jps.setVisible(true);
                    ventana.add(jps,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Solicitud<br/> Ayudantia</html>")){
                    Ayudante ayudante=ventana.getBaseDeDatos().getAyudantes().get(this.table1.getSelectedRow());
                    JPanelSolicitudAyudante jbsa=new JPanelSolicitudAyudante(ventana);
                    jbsa.getjCursos().setSelectedItem(ayudante.getCurso());
                    jbsa.getjHoras().setText(String.valueOf(ayudante.getHoras()));
                    jbsa.getjObservaciones().setText(ayudante.getObservaciones());
                    jbsa.getjProfesores().setSelectedItem(ayudante.getProfesor());
                    jbsa.getjRequisitos().setText(ayudante.getRequisito());
                    jbsa.bloquear();
                    jbsa.setVisible(true);
                    ventana.add(jbsa,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Planificacion<br/> Curso o horarios </html>")){
                    Planificacion p=ventana.getBaseDeDatos().getPlanificaciones().get(this.table1.getSelectedRow());
                    JPanelPlanificacion jpp=new JPanelPlanificacion(ventana);
                    jpp.getjObs().setText(p.getObservaciones());
                    jpp.setFile(p.getFile()) ;
                    if(p.getFile()!= null){
                        jpp.getjAdjunto().setText(p.getFile().getPath());
                    }
                    jpp.bloquear();
                    jpp.setVisible(true);
                    ventana.add(jpp,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Oferta<br/> Laboral </html>")){
                    MemoriaPractica mp=ventana.getBaseDeDatos().getMemoriasPracticas().get(this.table1.getSelectedRow());
                    JPanelOfertaPractica jpop=new JPanelOfertaPractica(ventana);
                    jpop.setjFechaInicio(mp.getFechaDesde());
                    jpop.setjFechaFin(mp.getFechaHasta());
                    jpop.getjContacto().setText(mp.getContacto());
                    jpop.getjDuracion().setText(mp.getDuracion());
                    jpop.getjHoras().setText(String.valueOf(mp.getHorasSemanales()));
                    jpop.getjLugar().setText(mp.getLugarDeTrabajo());
                    jpop.getjRequisitos().setText(mp.getRequisitos());
                    jpop.getjSueldo().setText(mp.getSueldo());
                    jpop.getjTitulo().setText(mp.getTitulo());
                    jpop.getjProfesores1().setSelectedItem(mp.getProfesor());
                    jpop.getjObservaciones().setText(mp.getObservaciones());
                    jpop.setFile(mp.getFile());
                    if(mp.getFile()!= null){
                        jpop.getjAdjunto().setText(mp.getFile().getPath());
                    }
                    jpop.bloquear();
                    jpop.setVisible(true);
                    ventana.add(jpop,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                else if(this.ventana.getMenualumno().getBotonSeleccionado().equals("<html>Avisos<br/> Generales </html>")){
                    General general=ventana.getBaseDeDatos().getGenerales().get(this.table1.getSelectedRow());
                    JPanelFormularioGeneral jpfg=new JPanelFormularioGeneral(ventana);
                    jpfg.getjTitulo().setText(general.getTitulo());
                    jpfg.getjMensaje().setText(general.getMensaje());
                    jpfg.setFile(general.getFile());
                    if(general.getFile()!= null){
                        jpfg.getjAdjunto().setText(general.getFile().getPath());
                    }
                    jpfg.bloquerar();
                    jpfg.setVisible(true);
                    ventana.add(jpfg,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                //menuExalumno
                else if(this.ventana.getMenuExAlumno().getBotonSeleccionado().equals("<html> Oferta<br/>Laboral</html>")){
                    OfertaLaboral of=ventana.getBaseDeDatos().getOfertasLaborales().get(this.table1.getSelectedRow());
                    JPanelOfertaLaboral jpol=new JPanelOfertaLaboral(ventana);
                    jpol.setjFechaInicio(of.getFechaInicio());
                    jpol.setjFechaFin(of.getFechaTermino());
                    jpol.getjCargo().setText(of.getCargo());
                    jpol.getjDestino().setText(of.getDestinoCargo());
                    jpol.getjEmpresa().setText(of.getEmpresa());
                    jpol.getjObservaciones().setText(of.getObservacion());
                    jpol.getjRequisitos().setText(of.getRequisito());
                    jpol.getjSalario().setText(of.getSalario());
                    jpol.setFile(of.getFile());
                    if(of.getFile()!= null){
                        jpol.getjAdjunto().setText(of.getFile().getPath());
                    }
                    jpol.bloquear();
                    jpol.setVisible(true);
                    ventana.add(jpol,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                else if(this.ventana.getMenuExAlumno().getBotonSeleccionado().equals("<html> Oferta<br/>Posgrado</html>")){
                    PostGrado p=ventana.getBaseDeDatos().getPostGrados().get(this.table1.getSelectedRow());
                    JPanelPostGrado jppg=new JPanelPostGrado(ventana);
                    jppg.setJfecha(p.getFecha());
                    jppg.getjInstituto().setText(p.getInstituto());
                    jppg.getjNombre().setText(p.getNombre());
                    jppg.getjObs().setText(p.getObservacion());
                    jppg.getjRequisitos().setText(p.getRequisito());
                    jppg.setFile(p.getFile());
                    if(p.getFile()!= null){
                        jppg.getjAdjunto().setText(p.getFile().getPath());
                    }
                    jppg.bloquear();
                    jppg.setVisible(true);
                    ventana.add(jppg,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                else if(this.ventana.getMenuExAlumno().getBotonSeleccionado().equals("<html> Oferta<br/>Becas</html>")){
                    Beca be=ventana.getBaseDeDatos().getBecas().get(this.table1.getSelectedRow());
                    JPanelBecaEstudio jbe=new JPanelBecaEstudio(ventana);
                    jbe.getjNombre().setText(be.getNombre());
                    jbe.getjPatrocinador().setText(be.getPatrocinador());
                    jbe.getjInstituto().setText(be.getInstituto());
                    jbe.getjDuracion().setText(be.getDuracion());
                    jbe.setjFechaIncio(be.getFechaDesde());
                    jbe.setjFechaFin(be.getFechaHasta());
                    jbe.setFile(be.getFile());
                    jbe.setjResultados(be.getFechaResultado());
                    jbe.getJmonto().setText(be.getMonto());
                    jbe.getjObjetivo().setText(be.getObjetivo());
                    jbe.getjRequisito().setText(be.getRequisito());
                    jbe.getjObservacion().setText(be.getObservacion());
                    if(be.getFile()!= null){
                        jbe.getjAdjunto().setText(be.getFile().getPath());
                    }
                    jbe.bloquear();
                    jbe.setVisible(true);
                    ventana.add(jbe,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
                else if(this.ventana.getMenuExAlumno().getBotonSeleccionado().equals("<html> Avisos<br/>generales</html>")){
                    GeneralEx general=ventana.getBaseDeDatos().getGeneralExs().get(this.table1.getSelectedRow());
                    JPanelFormularioGeneralExs jpfge=new JPanelFormularioGeneralExs(ventana);
                    jpfge.getjTitulo().setText(general.getTitulo());
                    jpfge.getjMensaje().setText(general.getMensaje());
                    jpfge.setFile(general.getFile());
                    if(general.getFile()!= null){
                        jpfge.getJAdjunto().setText(general.getFile().getPath());
                    }
                    jpfge.bloquerar();
                    jpfge.setVisible(true);
                    ventana.add(jpfge,BorderLayout.CENTER);
                    ventana.getResumen().setVisible(false);
                }
           }
       }
       else if(e.getSource().equals(botonAtras)){
           this.setVisible(false);
           ventana.add(ventana.getMenu(),BorderLayout.CENTER);
           ventana.setBotonSeleccionado();
           this.ventana.getMenu().setVisible(true);
       }
       else if(e.getSource().equals(botonEliminar)){
           this.eliminarFila();
           this.setVisible(false);
           this.setVisible(true);
       }
       else if(e.getSource().equals(botonEditar)){
           this.editarBorrador();
           this.eliminarFila();
       }
    }    
           
    public class MiRender extends DefaultTableCellRenderer {
        @Override
        public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected, boolean hasFocus,int row, int column){
            super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row, column);
            ModeloTabla mt=(ModeloTabla)table.getModel();
                if( mt.esBorrador(row)){
                    this.setOpaque(true);
                    this.setBackground(Color.green);
                    this.setForeground(Color.black);
                }
                else{
                    this.setOpaque(true);
                    this.setBackground(Color.white);
                    this.setForeground(Color.black);
                }
                if(table.getSelectedRow()==row)
                {
                    this.setOpaque(true);
                    this.setBackground(Color.blue);
                    this.setForeground(Color.white);
                }
            return this;
        }
    }
}
